Data transmission systems with error detection and correction capabilities



Dec l 1964 P. FIRE DATA TRANSlgSSCIN SYSTEMS WITH ERROR DETECTIOIIlsgSlO D RRECTION A Flled March 2l. 1960 C PABILITIES 4 Sheets-Sheet 5 ATTORNEY Dec. l, 1964 P. FIRE 3,159,810

DATA TRANSMISSION SYSTEMS WITH` ERROR DETECTION AND CORRECTION CAPABILITIES Filed March 2l, 1960 4 Sheets-Sheet 4 United States Patent O 3,l59,810 DATA TRANSMlSSHN SYSTEMS WHH ERRGR DETECTXON AND CRRECTEON CAPABHJITlE-S Philip Fire, Sunnyvale, Calif., assignor to Sylvania Electric Products Inc., a corporation of Delaware ,Filed Mar. 2l, 1960, Ser.v No. 16,278 4 Claims. (Cl. Mtl-146.1)

This invention is concerned with electronic data processing and communication systems, and particularly with the correction of transmission errors in such systems.

ln pulse coded digital communication and data processing systems having either radio or closed circuit linkage, intelligence is transmitted and processed in the form of electric or electromagnetic impulses. For example, in binary coded communication systems messages rnay be comprised by the presence or absence, or by variations in the amplitude or polarity of signals representing the ONES or ZEROS of a binary code. rlhe reliability of these digital systems is affected by the extent to which noise and other interference distorts the impulse signals during transmission so that ONES are mistaken for ZEROS and vice versa or to which phenomena such as momentary fading of radio frequency carriers at times delete digits or groups of digits from the attempted communication. p

During the past ten years considerable mathematical analysis and research and development activity have been devoted to the problem of discovering and correcting these errors Vin received messages. Three basic approaches have been followed: the use of code books etc. at the receiver to verify what the incoming message should be; majority testing of redundant algebraic relationships amongst the digits of the received message to recreate the digit sequence of the original message; and,

.various parity checking techniques. Co-pending patent applications Serial No. v'727,103, filed April 8, 1958, and Serial No. 842,549, now Patent No. 3,093,707, filed September 24, 1959, may be consulted for analyses of the present state of the art in this area andtypical examples of the previously mentioned approaches to solution of the problem. Y

These prior art techniques have proved effective, but have generally followed a digit-by-digit approach to the solution of independent errors. As a practical matter, however, the errors in digital communications in many types of systems do not occur with relative independence. For example, impulse noise picked up on telephone lines, power line surges inrstation equipment, complex noise characteristics in amplifiers, atmospheric fading, finite specks of dust and other particles or faulty spots on magnetic tape, etc. generally cause drop-outs of successive digits .or series bursts of erroneous digits.

Some of the previously referenced error correcting systems could be adapted to correct bursts of adjacent errors within certain limitations'but only at the expense of serious redundancy, for example as muchas `three to one, in word length. Consequently, it isstill a general practice to cope with errors by duplexing transmissions, a practice which requires either` duplicate, and

parallel operating, equipments or message repeats.

Accordingly, a primary objec'tof this invention is to provide for electronicdata processing and communica- .tion systems arr error correcting technique whichwill ice correct burst type errors with a minimum of message redundancy. A related object is to provide an improved transmission technique for such systems.

These and related objects have been accomplished in one embodiment of the invention by following practices described in a publication entitled A Class of Multiple- Error-Correcting Binary Codes for Non-Independent Errors, by Philip Fire, published by Sylvania Electric Products Inc. at Mountain View, California, in April of Vi959. This publication may be consulted for detailed analysis and mathematical demonstration of the theoretical aspects of the invention.

` In one illustrative embodiment, the invention features the combination of a parity digit generator which performs an encoding function at a transmitting station and a pair of parity digit generators at a receiving station. The first of these generators produces a parity word which indicates the pattern of the error burst, if such occurs within the received word, and the second, in combination with the first, produces data which determines the location of this error pattern. Once the pattern and the location of the errors have been determined, correction is accomplished simply by modulo two addition (i.e. add without carry) of the parity and erroneous message digits.

As will be explained in the following discussion of this illustrative example of an error correcting system embodying the invention, the width of the error burst which may be corrected is a function ofthe number of parity digits employed. In the typical example to be described, a message word of twenty-seven digits is corrected for error bursts up to three digits wide with the addition of only eight parity digits. The relative number of parity digits required in proportion to message digits decreases significantly with the length of the word thus making it possible to provide transmission systems wherein information words of considerable length can be transmitted with very low redundancy and high reliability. This technique has applicability not only in point-to-point communication systems but also to devices such as computer input-output equipment where it can replace` duplicate les of magnetic tape for error correcting purposes, provide a check for complete sets of punched card files by adding a few cards to the stack, compensate `for worn gears in mechanical coders, etc.

Other features, embodiments, modifications, and uses; for the invention will be apparent from the following l illustrative embodiment will be presented'. A thoroughly comprehensive ,analysis of its theoretical and mathematical aspects is available in the FireD publicationr previously referenced. v n

As has been explained, a principal Lfeatureof the invention is its ability to correct bursts or errors indigital communications. This is accomplished by adding to the text of the original message a series of parity digits and subsequently decoding them in a specialized manner. The encoding logic which produces the parity digits is adapted to prescribe a series of modulo two additions of the individual message and parity digits in various combinations so that a parity Word is formed for each message word. This parity word is the result of a separate parity check for each such digit to be transmitted.

A specified different parity checking procedure performed on all of the received digits produces a parity check Word at the decoder. The procedure by which this word is obtained will be explained later in more detail, but a characteristic feature of the invention is that each of the check Words is capable of being generated in the decoder of the system by a combination of two pulse shifting registers. In the illustrative embodiment of the invention to be described, one of these shifting registers has maximum sequence feedback connections and the other has non-maximum connections.

Maximum and non-maximum shift register sequences are thoroughly discussed in the Fire publication and the references cited therein. In brief, the maximum sequence generator is a shift register of n stages having appropriate feedback connection from later stages back, through a modulo two adder, to its first stage so that the word represented by the digit content of its component stages changes for each shift pulse applied to the register and no word is repeated until the maximum number of words possible (2n-1 because the case of all ZEROs is avoided) has been produced. A non-maximum sequence generator is a shift register of n stages having such feedback connections that less than 2-1 words are generated before the cycle is repeated. The particular nonmaximum sequence used in these codes is a simple connection from its final to its first stage so that, in response to shift pulses, an n stage register produces only iz Words before repeating itself. In the table of FIG 1 the three digit words k are examples of maximum sequences and the live digit words k are examples of non-maximum sequences.

In the embodiment of the invention under present discussion, these two types of sequences are combined as subwords to .form a complete parity word (k digits long) and are cycled through their respective disjoint periods to provide a maximum number of possible check words without repeating the same combination of individual digits. The sub-word k digits long produced by the nonmaximum sequence is used first to recognize an error pattern, and the sub-word k digits long produced by a maximum sequence feedback connection is then used in combination with the non-maximum word to provide an error location word which is cycled through all of its possible permutations in unison with' circulation of the received word, through its own register, until location of the enror pattern, previously detected, has been established. At this point the erroneous digits are corrected by simple modulo two addition (binary add without carry) of the error pattern digits to the message digits in error.

A suitable procedure for applying the principles of the invention to the correction of error bursts in digital communications of a given word length follows:

(I) Provide a Table of Check Word Seq wherein:

(a) Each digit of a transmitted word of the length de-V sired (including message and parity digits) has assigned to it a separate combination of the available check word digits, i.e. a separate check word;

(b) These separate combinations each comprise two subfgrou'ps 'one of which may be derived from Ia Vshift register having maximum sequence feedback connections and the other of which may be derived from a shift register having non-maximum sequence connections;

(c) The maximum sequence register has a number of USIICCS Cir i stages (k) equal to the width in number of digits (n) of error correcting capability desired; and

(d) The non-maximum sequence register has a width in number of stages (k') capable of accommodating unambiguously every possible shifted combination of error pattern digits desired to be corrected without repeating its data content.

Such a table is shown in FIG. l wherein four columns (A-D) each containing thirty-five no eight bit data words are shown. The words have a specialized bit content and pattern, as will be made more apparent, and eight bit combination occurs more than once in the table which provides for correcting up to three adjacent errors in the following combinations:

Column A-single errors (X) Column B-adjacent double errors (XX) Column C-three `bit wide double errors (XOX) Column D-triple adjacent errors (XXX) The various blocks of digits which comprise the table indicate that it has been constituted by a series of disjoint relationships of a three digit wide maximum sequence and a tive digit wide non-maximum sequence operating with different periodicities. The interrelation between the A, B, C, and D sequences is established as follows: B1=A1A2g C1=A1A3g and D1=A1A2G9A3- (Il) Derive fnom the Table olf Check Word Sequences (FIG. l) a Parity Check Table by assigning each of the possible check words in one column, e.g. A, to a separate digit (message or parity) of the word to be transmitted and identifying in some prescribed manner each vertical row of digits with a parity digit designation. An example of such a check table for thirty-live digit (27 message, M, yand 8 parity, P) is shown in FIG. 2.

(III) Produce a set of linear simultaneous equations for the individual digits of the parity word by indicating modulo two addition of the positions checked down the columns under each of these digits (P1P8 in the Table of FIG. 2), ignoring the check at the intersection of row and column assigned to the same parity digit. In the illustrative table of FIG. 2, this results in the following series of equations:

(IV) Employing Boolean techniques, minimize these equations to provide a Panity Digit Encoding Table. The preceding equations may be so minimized, to provide the Encoding Table of FIG. 3, in the following manner.

It is necessary `to so-lve for each Pi (=l, 2, 8) in terms of only the MJ (j=l, 2, 27). In the above equations P4 and P5 are ralready in the required form. Hence, we -rnust solve for P1, P2, P3, P6, P7, and P8. Coeflicients are reduced to modulo-2, i.e., an even number is equal to ZERO and an odd number is equal to ONE.

Substituting for P4 and P5 from Equations 4 and 5, and putting all the remaining P, on the left side, one gets:

Adding (7a) and (8a), one gets:

Now, (3a) added to (7c) gives:

Adding (la) and (lc) gives:

Adding (6c) and (6a) gives:

Adding (2a) and (2c) gives:

Adding (7a) to (6c) plus (7d) gives:

And iinally, adding (3d) to (3a) gives:

(V) Provide, for the instrumentation of the encoder,

`a Boolean matrix embodying the Encoding Table of FIG. 3.

if there have been no transmission errors and a ONE in Y appropriate digit positions to indicate errors. 1

(VII) Accept the message if the decoder generated parity word is :all ZEROS.

(VIII) Cycle the parity sub-word generators to determine error pattern and location, in a manner to be explained, it the decoder parity word contains one or more ONEs.

(IX) Correct the located errors Iand |accept the message. t

An. illustrative instrumentation system for encoding messages of a twenty-seven binary digit length and decoding them with a capability of correcting errors in bursts up to three digits wide is illustrated in FIGS. 4 and 5.

The encoder of FIG. 4 includes: a source liti of message information; a sampler 12 for converting this data into a series of occurrences and non-occurrences of synchronized electrical impulses representing the ONEs and VZEROs of a'binary codedintormation system; a twentyseven digit butter register 14 arranged to accept data in serial form from the sampler 12 and store it in parallel stages Bl-BZ'; a logic line 1tV in the form of a register having thirty-iive stages (M1-M27 and Pit-PS) for storing the message digits while parity digits are generated and kfor arranging the sequence of parity and message digits for ultimate transmission; a matrix 18 including the necessary Boolean circuitry for minimizing the amount of modulo two addition which must be performed to implement the encoding process; a series of .flip-flop devices 20 having complementing inputs from the matrix 18 so as to have the capability of performing the modulo two additions required to generate the parity digits P1- PS; and, a ring counter 22 for sequencing the operations of the encoding process.

The decoder of FIG. 5 includes an input 24 whence the received message and parity digits are derived; a pulse shifting register 26 for storing these digits during the decoding process; a Boolean matrix 28 for implementing the decoding operation; a parity digit generator 30 including a series of ilip-ops Cl-CS each having a complementing input from the Boolean matrix 28 so as to permit them to perform the modulo two addition required to form a decoder check word; a check word store 32; an error position store 34; an error pattern store 36; an error location generator 38; and, a ring counter 4t) for sequencing the operations of the decoder.

Encoding Operation In the operation of the encoder (FIG. 4) timing Ainputs (provided by a suitable clock system, not shown) are provided at sequences of f1, f2, and f3.V f2 is the information input bit rate, e.g. bits per second; f3 is equal to srfz so that an output character (twenty-seven information bits plus eight check bits) may be driven serially from the register 16 during the same time interval that an input character (twenty-seven information bits only) enters the register 14; f1 provides pulses in a cycle greater than 35 f3 so that a complete parity check involving serial operation on each one of thirty-tive digits may be accomplished in the period between the output of the last character in a message word shifted from register 16 via output terminal 42 and the first bit of the next character without changing the output bit rate.

The message information arriving at terminal 1t) is sampled at the bit rate (f2) by the sampler 12- and stored in the butler line. At this time, a ONE produced by generator 44 is inserted into the iirst stage R1 of ring counter 22 and is driven, at the bit rate, by f2 pulses transmitted to the ring counter driver 46 via the ZERO gate 48 of a iip-lop device Sti which is assumed to be in ZERO condition.

After twenty-seven f2 pulses, at time t2'7 when the register 14 has been loaded with the twenty-seven digits Vof the message character, the ONE moving down the sequential stages of ring counter 22 is shifted from its Iinal stage R27. This ZERO to ONE transition complements the flip-flop 5i) to its ONE condition, thereby inactivating its ZERO gate 48 and energizing its ONE gate 52 and also RESEITING the parity check iiip-flops 2i) to lZERO condition and transferring the message digits from the butter register 14 to the logic line 16 via operation or" parallel transfer control 53 energized via control line S5.

With the opening of the ONE gate V52 and closing of the ZERO gate 4S, the driver 46 drives the ring counter 22 at an f1 rate and, as it drives the one which has been reinserted into itsiirst stage R1 down the counter, produces serial pulses at the outputs t1-t27. Each of these pulses is consecutively applied to the digits lDZ--Di in the logic line 16 and seeks coincidence with a ONE stored in the respective logic'line stage to which they are connected'. When such coincidence occurs, a pulse is transmitted through the matrix lto the appropriate iiip-ilop 2Q which the encoding system requires for'the generation of the appropriate one of the-parity digits Pl-PS concerned. The conguration of this matrix is established by reference tothe encoding table of FIG'. 2 in accordance L with the procedure previously. explained.

When the ONEV in the ring counter reaches stage 27 thissecond time, the iiip-op is again complemented, this time toits ZERO condition. t This transition inactivates the ONE gate 52 and energizes the ZERO gate 48. It also activates the check bit transfer control 54 to cause the Hip-flops 26 containing the parity digits to transfer them to the appropriate stages Pl-PS in the logic storage line 16.

The sequence is now repeated with f3 pulses overlapping f2 pulses so that the shift register 16 is cleared of the digit sequence to be transmitted via output 42 as the buffer register 14 is loaded with message digits obtained from the sampler 12.

Decoding Operation In the operation of the decoder (FIG. a suitable clock 56 provides timing pulses as follows: F1, the bit rate of the received information; F2, the processing rate of the decoder which may be approximately 100 F 1; and, F3 which is the received word rate, equal to Fl/ 35 Input data arriving at terminal 24 is received sequentially and shifted into the various stages of register 26 at an F1 bit rate. After the thirty-five bits of word data (parity digits Pil-P8 and message digits M1-M27) have been received and stored, an F3 pulse occurs.

The F3 pulse causes the ONE generator 58 to insert a ONE into the first stage R1 of ring counter 40. This counter is driven by F2 pulses; and, as the ONE is circulated through it, pulses at TIL-T are generated at the individual outputs of its thirty-tive stages. As each one of these ri`1-T35 pulses is generated it seeks coincidence witha ONE in the individual stage of register 26 to which it is connected. When such coincidence occurs,

a pulse is sent to the appropriate flip-flop Cl-CS of the parity digit generator 30 via Boolean matrix 28. This matrix has been arranged, in the manner previously explained, to accomplish the required modulo two addition for producing the decoder check word by connecting the various message and parity digits contained in the register 26 to the complementing inputs of the individual flipflops Oft-C8 of the parity word generator 30. If the check word thus generated is all ZEROs no errors have been detected in the received word and gate 60 is energized to accomplish readout of the message digits M1-M27 from the register 26.

Upon the generation of pulse T35, if there are any ONEs instead of all ZEROs in the check word generator 30, the check bit transfer control 62 is energized to transfer the various digits of the check word from their respective iiip-ops Cl-CS to corresponding stages of the check Word store 32. At the same time the last tive digits of the word are transferred from dip-Hops C4-C8 of the generator 30 into stages Ll-LS, respectively, of the error sub-word shifting register 34. At this time, the ftip-flop 64 is also complemented to energize gate 66.

With gate 66 energized, pulses at rate F2 drive the register 34 until there is a ONE in position L5 and ZEROs in positions L1 and L2. When this occurs, the digits stored in stages L3, L4, and L5 are transferred, under the control of the error pattern transfer 68 responding to a combination of signals om NOR gate 70 and AND gate '72, to stages S3, S2, and S1, respectively, of the error pattern sub-word store 36. Flip-Hop 64 is, at this time, RESET by a signal from the AND gate 72 to de-energze gate 66 thereby disconnecting this source of driving pulses F2 and energizing the ONE generator 58 to insert a ONE into stage R1 of the ring counter 40. This transition of flip-flop 64 also complements ilip-op 74 to energize gate 76 and now apply the F2 driving pulses simultaneously to registers 34 and 38.

The non-maximum sequence generator 34 and maximum sequence generator 3S are now driven in unison with each other and with the register 26 at the F2 rate. Registers 34 and 26 are operating with a simple feedback connection from their iinal into their rst stage so that their data is simply recirculating. Register 38, however, is operatedwith appropriate feedback connections through a modulo two adder 78 tofprovide a maximum sequence of digit combinations. The initial contents of the register 38 when this sequencing operation is started consists, in its stages Z1, Z2, and Z3, of a combination of ZEROs and ONEs provided by the ONE generator 80 and control connections (not shown) to conform with the initial k sequence sub-word of the A-D group (FIG. 1) to which the particular type of k sub-word contained in stages L3, L4, and L5 of register 34 belongs, i.e. whether it is a one, two or three digit group.

The combination of registers 38 and 34 is now producing the various check words of the Table of Check Word Sequences in FIG. l. The shifting process cycles these registers through their `sequence of possible words until the word they generate coincides digit for digit with the check word stored in register 32. When this coincidence occurs the error correction gate 82 is energized to cause the error pattern sub-word stored in stages S1-S3 of register 36 to be added modulo two to the contents of corresponding stages P3-P1 of the register 26. This driving pulses continue until a pulse at T35 indicates that the message word stored in register 26 has been driven full cycle and its first digit is again located in stage M1 of the register, its second digit in stage M2, etc. At this time, the -z-Z circuit 84, which was partially energized by the first pulse T35 is now fully energized and complements the flip-Hop 74 thereby de-energizing gate 76 and complementing flip-Hop 86 to energize the gate-60 for read-out of the message digits. Flip-Hop 64 has been complemented by pulse T35 to cause another ONE to start circulating through ring counter 40 and flip-flop 86 which controls the operation of gate 60, remains energized until T27 to accommodate the shift-out of the twentyseven digits of the corrected message from register 26.

It should be noted that the error checking process involved herein is cyclic as distinguished from iterative in the language of this art wherein an iterative check is performed by operating upon the digits of different rows or columns in corresponding different directions through a static matrix arrangement of the component digits and a cyclic check is performed by operating upon different digits as occupying certain selected positions as the message is shifted through a matrix. A typical example of error correcting which features principles of this invention is as follows.

Assume: A twenty-seven digit message and a desired capability of correcting transmission errors in bursts up to three digits wide; an operating system utilizing the encoding and decoding tables and the equipments which have been described; and, the following sequence of message digits (M1-M27) at the information input to the decoder of FIG. 4.

M1 M2 M13 NM N15 M6 L17 B18 D19 :M10 M11 B112 M13 1 0 0 1 1 0 1 1 1 0 1 0 0 M14 1115 B116 M17 M18 l\19 M20 M21 M22 M23 M24 M25 O 1 0 1 1 0 1 0 1 1 0 0 M26 M27 ,1 l

This sequence of digits passes, via the sample 12, to stages B1-B27 of the buffer storage 14 and thence to stages M1-M27 of the logic line 16. Here, each digit stage is pulsed sequentially by the inputs t1-t27 derived from the ring counter 22 and, in accordance with the control circuitry of the Boolean matrix 18, complements selected ones of the parity digit generating flip-flop circuits 20 if there is a 1 in each digit stage M1-M27 as it is energized.

After all twenty-seven of the message digits have been sensed and made their contribution to the generation of the parity digits, the following parity check word results:

P11-B8 of the logic line 16 and the following sequence of digits is transmitted.

we) l lf I assume that transmission errors occur in message digits M9-M11, the thirty-tive digits which comprise the data processing word arriving at the input `terminal 24 of the decoder of FIG. `are the same as those transmitted above with the exception that bit 17 is changed from a 1 to a 0, bit 18 is changed from a 0 tot a l, and bit 19 is changed from a l -to a 0. This represents a three digit wide error burst wherein message digits 101 are changed If there had been no errors in the received message word, the decoder Boolean matrix Z8, which embodies the decoding table of FIG. 2, would result in eight Os in the parity check digit generating ip-ops 30. Since, however, in our example bits 17, 18, and 19 have been erroneously received as specified above, the parity word generated in the ip-iiops 30 instead of being all Os is as follows:

Pl P2 P3 P4 P5 P6 P7 P8 100011110 This word is transferred to the check word store 32 and its last ive digits (P4-P8) are transferred into stages L1-L5, respectively, of the error position sub-word 34. This register is now shifted until its rst two stages contain Os and its iinal stage contains a l. In our example its contents will then read L1 L2 L3 L4' L5 i 0 0 1 1 1 The three adjacent ls in register 34 indicate that the pattern of the error .received is three adjacent erroneous digits, and these three 1s indicating `this pattern are transferred to stages S1, S2, and S3 of the error pattern sub-word register 36. p

Since the error pattern of three adjacent. ls indicates that the check word sequence of Column D in FIG. 1 is applicable, three 1s, to conform with the initial k word of this column, are inserted in stages Z1-Z3, respectively, of the M sequence generator 33 and appropriate control circuitry is energized to cause the maximum sequence generator 38 and the non-maximum sequence generator 34 to shift in unison through all of their thirtylive possible disjoint relationships set forth in Column D of FIG. 1 commencing with their initial setting of:Y

After each shift the contents of these two registers 38 and 34- are compared digit for digit with the decoder parity word stored in register 32 and the contents of the register 26 is simultaneously shifted one stage to the right with a recirculating feedback connection from stage P1 to M27. When bits 17, 13, and 19 of thereceived word corresponding to bits M9, M10, and M11 of the original message are in alignment, respectively, with stages S1, S2, and S3 of the error pattern sub-word register 36, i.e. in the original position of bits P1-P3, the combined contents of registers 33k and 34 read as follows: 10001110 which is the seventeenth check word in sequence D of' FIG. l and also a digit-for-digit coincidence with the decoder parity check word stored in register 32.

This coincidence causes the errorr pattern digits in stages S1-S3 of reg'ster 36 to be added modulo two to the erroneously received digits M9, M10, and M11 thereby changing them from the pattern of 010 to their original correct form of lOl. Thus, thethree digit wide transmission error is corrected and the originally encoded message is derived frornthe decoder via the output gate which decoder comprises: matrix means for processing vide greater or lesser error correcting capability if desired, and the message word itself may be lengthened or shortened. Also, the operation of the encoding and decoding equipment may be varied by changing the initial condition of the location sub-word, the logic land/ or shift direction of the sub-word registers, the initial digital make-up of the check Words, the particular relationship between A, B, C, and D words, etc. Some of these alternatives are discussed in the Fire publication referenced and others will be apparent to those skilled in the art. The invention, however, is not limited to the specities of either the present description or the publication but embraces the full scope of the following claims.

In the following claims, the term convolutional is employed to specify a particular type of signal processing in digital data error detecting and correcting techniques and apparatus. As explained by Peter Elias in the Transactions of the IRE, 1954 Symposium on Information Theory, September 1954, and the IRE v1955 National Convention Record, volume III, Part 4, and also in copending U.S. patent application, Serial No. 727,103, led April 8, 1958, by Stanley A. Fierston et al. and assigned to Sylvania Electric Products Inc. (on page 4), convolutional parity checking and error detecting or correcting systems provide a continuous bit-by-bit check on the digits of messages being processed by using previously checked Adigits to verify subsequently processed digits. Thus, in a convolutional technique for processing digits in such a system, every digit is processed through every single position in the matrix; and, while it is in each position, it is checked against various combinations of other digits in the matrix for parity. It is a significant feature of the present invention as it is set forth in the following claims that it pertains only to convolutional systems.

What is claimed is:

l. For an electronic data processing system wherein information is processed in the format of digital sequences of binary coded electronic signals and said sequences include message digits and parity digits generated by convolutional processing of said message digits, error correcting apparatus including a decoder for said sequences,

said sequences in a cyclic parity-digit-generating operation wherein each message and each parity digit of said sequence-is processed through each position of said matrix and is checked against other message and parity digits of said sequence in a separate operation for each position of said matrix to provide electronic signal indication of erroneous digits in said sequence; storage means, connected to said matrix means, for storing said indications of erroneous digits; rstpulse shifting register means connected to said storagemeans for processing binary signal indication of the pattern'of occurrence of said erroneous digits; secondpulse shifting register means connected to said iirst shift register means 'for indicating, in combination with said rst shift register means, the location of said erroneous digits Within a given format; means for cycling said rst and said second shift register means to achieve a desired relationship between the signal contents of said registers and said storage means; and, means responsive to said achievement of said relationship for implementing correction of erroneous digits in said sequences. l Y

2. The linventionraccording tofclaim lrwherein said i Y 1 1 rst and said second shift register means each have a diferent periodicity.

3. The invention according to claim 2 wherein one of said shift register means is ya maximum sequence apparatus and the other of said shift register means is a non-maximum sequence apparatus.

4. The invention according to claim 3 wherein said means for implementing correction comprises means for performing sum-modulo-two addition of said pattern of error signals and said erroneous digit signals.

References Cited in the le of this patent UNITED STATES PATENTS 2,552,629 Hamming et al. May 15, 1951 '2 Hagelbarger Oct. 11, 1960 Kahn June 5, 1962 OTHER REFERENCES Elias, Peter: Coding for Noisy Channels; IRE Convention Record, Part 4, 1955, pp. 37-46.

Green, I, H., Jr., et al.: An Error-Correcting Encoder and Decoder of High Eficiency; Proceedings of the IRE, October 1958, pp. 1741-1744.

Feinstein, Amiel: Foundations of Information Theory; McGraw-Hill Book Co., Inc., New York, 1958, pp. 120- 131.

pui 

1. FOR AN ELECTRONIC DATA PROCESSING SYSTEM WHEREIN INFORMATION IS PROCESSED IN THE FORMAT OF DIGITAL SEQUENCES OF BINARY CODED ELECTRONIC SIGNALS AND SAID SEQUENCES INCLUDE MESSAGE DIGITS AND PARITY GENERATED BY CONVOLUTIONAL PROCESSING OF SAID MESSAGE DIGITS, ERROR CORRECTING APPARATUS INCLUDING A DECODER FOR SAID SEQUENCES, WHICH DECODER COMPRISES: MATRIX MEANS FOR PROCESSING SAID SEQUENCES IN A CYCLIC PARITY-DIGIT-GENERATING OPERATION WHEREIN EACH MESSAGE AND EACH PARITY DIGIT OF SAID SEQUENCE IN PROCESSED THROUGH EACH POSITION OF SAID MATRIX AND IS CHECKED AGAINST OTHER MESSAGE AND PARITY DIGITS OF SAID SEQUENCE IN A SEPARATE OPERATION FOR EACH POSITION OF SAID MATRIX TO PROVIDE ELECTRONIC SIGNAL INDICATION OF ERRONEOUS DIGITS IN SAID SEQUENCE; STORAGE MEANS, CONNECTED TO SAID MATRIX MEANS, FOR STORING SAID INDICATIONS OF ERRONEOUS DIGITS;FIRST PULSE SHIFTING REGISTER MEANS CONNECTED SAID STORAGE MEANS FOR PROCESSING BINARY SIGNAL INDICATION OF THE PATTERN OF OCCURRENCE OF SAID ERRONEOUS DIGITS; SECOND PULSE SHIFTING REGISTER MEANS CONNECTED TO SAID FIRST SHIFT REGISTER MEANS FOR INDICATING, IN COMBINATION WITH SAID FIRST SHIFT REGISTER MEANS, THE LOCATION OF SAID ERRONEOUS DIGITS WITHIN A GIVEN FORMAT; MEANS FOR CYCLING SAID FIRST AND SAID SECOND SHIFT REGISTER MEANS TO ACHIEVE A DESIRED RELATIONSHIP BETWEEN THE SIGNAL CONTENTS OF SAID REGISTERS AND SAIDSTORAGE MEANS; AND, MEANS RESPONSIVE TO SAID ACHIEVEMENT OF SAID RELATIONSHIP FOR IMPLEMENTING CORRECTION OF ERRONEOUS DIGITS IN SAID SEQUENCES. 